/**
 * 
 */
package cn.ad.server.web.spring.model.adview;

/**
 * 设备信息
 * @author Administrator
 */
public class Device {
	
	/**
	 * 设备联网类型
	 * @author Administrator
	 *
	 */
	public enum CONNECTION_TYPE{
		/**
		 * 未知
		 */
		UNKNOWN,
		/**
		 * 1 局域网(PC)
		 */
		LAN,
		/**
		 * WIFI
		 */
		WIFI,
		/**
		 * 蜂窝数据网络 - 未知
		 */
		CELLULAR_NETWORKS_UNKNOWN,
		/**
		 * 蜂窝数据网络 – 2G
		 */
		CELLULAR_NETWORKS_2G,
		/**
		 * 蜂窝数据网络 – 3G
		 */
		CELLULAR_NETWORKS_3G,
		/**
		 * 蜂窝数据网络 – 4G
		 */
		CELLULAR_NETWORKS_4G;
	}
	
	/**
	 * 设备类型
	 * @author Administrator
	 *
	 */
	public enum DEVICE_TYPE{
		/**
		 * 0 未知
		 */
		UNKNOWN,
		/**
		 * 1 iPhone
		 */
		IPHONE,
		/**
		 * 2 Android 手机
		 */
		ANDROID,
		/**
		 * 3 iPad
		 */
		IPAD,
		/**
		 * 4 Windows Phone
		 */
		WINDOWS_PHONE,
		/**
		 * 5 Android 平板
		 */
		ANDROID_TABLET,
		/**
		 *  6 智能 TV
		 */
		SMART_TV;
	}
	
	/**
	 * 是否不允许广告追踪：
		0- 允许追踪
		1- 不允许追踪
	 */
	private int dnt;
	
	/**
	 * 浏览器的 user agent 值
	 */
	private String ua;
	
	/**
	 * 设备的 IP 地址
	 */
	private String ip;
	
	/**
	 * 地理信息对象
	 */
	private Geo geo;
	
	/**
	 * 原始 IDFA 值
	 */
	private String idfa;
	
	/**
	 * IMEI 的 SHA1 值
	 */
	private String didsha1;
	
	/**
	 * AndroidID 或 IDFA 的 SHA1 值
	 */
	private String dpidsha1;
	
	/**
	 * MAC 地址的 SHA1 值
	 */
	private String macsha1;
	
	/**
	 * IMEI 的 md5 值
	 */
	private String didmd5;
	
	/**
	 * AndroidID 或 IDFA 的 md5 值
	 */
	private String dpidmd5;
	
	/**
	 * MAC 地址的 md5 值
	 */
	private String macmd5;

	//TODO --标注字段名称
	private String carrier;
	
	/**
	 * 设备的语言设置,使用 alpha-2/ISO 639-1
	 */
	private String language;
	
	/**
	 * 设备制造商,例如Apple
	 */
	private String make;
	
	/**
	 * 设备型号
	 */
	private String model;
	
	/**
	 * 设备操作系统, 例如：iOS
	 */
	private String os;
	
	/**
	 * 设备操作系统版本号
	 */
	private String osv;
	
	/**
	 * 是否支持 Javascript 脚本
		1-支持
		0-不支持
	 */
	private int js;
	
	/**
	 * 设备联网类型
	 * 当未传类型时，定义为未知
	 */
	private CONNECTION_TYPE connectiontype = CONNECTION_TYPE.UNKNOWN;
	
	/**
	 * 设备类型
	 */
	private DEVICE_TYPE devicetype = DEVICE_TYPE.UNKNOWN;
	
	/**
	 * 设备屏幕像素密度
	 */
	private float s_density;
	
	/**
	 * 设备屏幕分辨率宽度，单位为像素
	 */
	private int sw;
	
	/**
	 * 设备屏幕分辨率宽度，单位为像素
	 */
	private int sh;
	
	/**
	 * 设备屏幕方向:
		0- 竖向
		1- 横向
	 */
	private int orientation;
	
	/**
	 * 扩展内容
	 */
	private Object ext;

	public String getCarrier() {
		return carrier;
	}

	public void setCarrier(String carrier) {
		this.carrier = carrier;
	}

	/**
	 * @return the dnt
	 */
	public int getDnt() {
		return dnt;
	}

	/**
	 * @param dnt the dnt to set
	 */
	public void setDnt(int dnt) {
		this.dnt = dnt;
	}

	/**
	 * @return the ua
	 */
	public String getUa() {
		return ua;
	}

	/**
	 * @param ua the ua to set
	 */
	public void setUa(String ua) {
		this.ua = ua;
	}

	/**
	 * @return the ip
	 */
	public String getIp() {
		return ip;
	}

	/**
	 * @param ip the ip to set
	 */
	public void setIp(String ip) {
		this.ip = ip;
	}

	/**
	 * @return the geo
	 */
	public Geo getGeo() {
		return geo;
	}

	/**
	 * @param geo the geo to set
	 */
	public void setGeo(Geo geo) {
		this.geo = geo;
	}

	/**
	 * @return the idfa
	 */
	public String getIdfa() {
		return idfa;
	}

	/**
	 * @param idfa the idfa to set
	 */
	public void setIdfa(String idfa) {
		this.idfa = idfa;
	}

	/**
	 * @return the didsha1
	 */
	public String getDidsha1() {
		return didsha1;
	}

	/**
	 * @param didsha1 the didsha1 to set
	 */
	public void setDidsha1(String didsha1) {
		this.didsha1 = didsha1;
	}

	/**
	 * @return the dpidsha1
	 */
	public String getDpidsha1() {
		return dpidsha1;
	}

	/**
	 * @param dpidsha1 the dpidsha1 to set
	 */
	public void setDpidsha1(String dpidsha1) {
		this.dpidsha1 = dpidsha1;
	}

	/**
	 * @return the macsha1
	 */
	public String getMacsha1() {
		return macsha1;
	}

	/**
	 * @param macsha1 the macsha1 to set
	 */
	public void setMacsha1(String macsha1) {
		this.macsha1 = macsha1;
	}

	/**
	 * @return the didmd5
	 */
	public String getDidmd5() {
		return didmd5;
	}

	/**
	 * @param didmd5 the didmd5 to set
	 */
	public void setDidmd5(String didmd5) {
		this.didmd5 = didmd5;
	}

	/**
	 * @return the dpidmd5
	 */
	public String getDpidmd5() {
		return dpidmd5;
	}

	/**
	 * @param dpidmd5 the dpidmd5 to set
	 */
	public void setDpidmd5(String dpidmd5) {
		this.dpidmd5 = dpidmd5;
	}

	/**
	 * @return the macmd5
	 */
	public String getMacmd5() {
		return macmd5;
	}

	/**
	 * @param macmd5 the macmd5 to set
	 */
	public void setMacmd5(String macmd5) {
		this.macmd5 = macmd5;
	}

	/**
	 * @return the language
	 */
	public String getLanguage() {
		return language;
	}

	/**
	 * @param language the language to set
	 */
	public void setLanguage(String language) {
		this.language = language;
	}

	/**
	 * @return the make
	 */
	public String getMake() {
		return make;
	}

	/**
	 * @param make the make to set
	 */
	public void setMake(String make) {
		this.make = make;
	}

	/**
	 * @return the model
	 */
	public String getModel() {
		return model;
	}

	/**
	 * @param model the model to set
	 */
	public void setModel(String model) {
		this.model = model;
	}

	/**
	 * @return the os
	 */
	public String getOs() {
		return os;
	}

	/**
	 * @param os the os to set
	 */
	public void setOs(String os) {
		this.os = os;
	}

	/**
	 * @return the osv
	 */
	public String getOsv() {
		return osv;
	}

	/**
	 * @param osv the osv to set
	 */
	public void setOsv(String osv) {
		this.osv = osv;
	}

	/**
	 * @return the js
	 */
	public int getJs() {
		return js;
	}

	/**
	 * @param js the js to set
	 */
	public void setJs(int js) {
		this.js = js;
	}

	/**
	 * @return the connectiontype
	 */
	public CONNECTION_TYPE getConnectiontype() {
		return connectiontype;
	}

	/**
	 * @param connectiontype the connectiontype to set
	 */
	public void setConnectiontype(CONNECTION_TYPE connectiontype) {
		this.connectiontype = connectiontype;
	}

	/**
	 * @return the devicetype
	 */
	public DEVICE_TYPE getDevicetype() {
		return devicetype;
	}

	/**
	 * @param devicetype the devicetype to set
	 */
	public void setDevicetype(DEVICE_TYPE devicetype) {
		this.devicetype = devicetype;
	}

	/**
	 * @return the s_density
	 */
	public float getS_density() {
		return s_density;
	}

	/**
	 * @param s_density the s_density to set
	 */
	public void setS_density(float s_density) {
		this.s_density = s_density;
	}

	/**
	 * @return the sw
	 */
	public int getSw() {
		return sw;
	}

	/**
	 * @param sw the sw to set
	 */
	public void setSw(int sw) {
		this.sw = sw;
	}

	/**
	 * @return the sh
	 */
	public int getSh() {
		return sh;
	}

	/**
	 * @param sh the sh to set
	 */
	public void setSh(int sh) {
		this.sh = sh;
	}

	/**
	 * @return the orientation
	 */
	public int getOrientation() {
		return orientation;
	}

	/**
	 * @param orientation the orientation to set
	 */
	public void setOrientation(int orientation) {
		this.orientation = orientation;
	}

	/**
	 * @return the ext
	 */
	public Object getExt() {
		return ext;
	}

	/**
	 * @param ext the ext to set
	 */
	public void setExt(Object ext) {
		this.ext = ext;
	}
}
